package com.hyh.music.service;

import com.hyh.music.Result.PageResult;
import com.hyh.music.Result.Results;
import com.hyh.music.domain.domainDTO.SearchDTO;
import com.hyh.music.domain.domainDTO.SongDTO;
import com.hyh.music.domain.domainDTO.SongPageDTO;
import com.hyh.music.domain.domainDTO.SongUpdateDTO;
import com.hyh.music.domain.domains.Song;

/**
 * @author hyh
 * @version 1.0
 */
public interface SongService {
    /**
     * 歌曲的分页查询
     * @param songPageDTO
     * @return
     */
    PageResult PageSelect(SongPageDTO songPageDTO);

    /**
     * 添加歌曲
     * @param songDTO
     */
    void addSong(SongDTO songDTO);

    /**
     * 根据id查询歌曲
     * @param id
     * @return
     */
    Song selectById(Integer id);

    /**
     * 更新歌曲
     * @param songUpdateDTO
     */
    void update(SongUpdateDTO songUpdateDTO);

    /**
     * 删除歌曲
     * @param id
     */
    void deleteById(Integer id);

    /**
     * 搜索所有歌曲
     * @return
     */
    Results selectAllSongs();

    /**
     * 默认搜索
     * @param searchDTO
     */
    PageResult page(SearchDTO searchDTO);
}
